  function [x,fmin,k] = almain(x_0)
    global r_al pena;
    pena = 10;
    r_al = [1,1,1,1]; %乘子
    c_scale = 2;
    cta = 0.1;
    max_itera = 30;
    out_itera = 1;
    while out_itera<max_itera   %加eps都没法迭代，效果真jb差，垃圾
        x_al0 = x_0;
        r_al0 = r_al;
        compareFlag = compare1(x_al0);
        [X,fmin] = fminunc(@alobj,x_al0); %求解无约束最优化得x_k
        x_0 = X;
        if compare1(x_0)<cta*compareFlag    %更新惩罚因子
            pena = 1*pena;
        else
            pena = min(1000,c_scale*pena);
        end
        g = constrains(x_0);
        for i = 1:4
            r_al(i)=max(0,(r_al0(i)+pena*g(i))); %乘子修正
        end
        out_itera = out_itera+1;
     end
        k = out_itera
        tau = compare1(x_0)
        x = x_0
        fmin = obj(x)
 end
